//封装一个处理html数据的函数
import { parseHTML } from "jquery"
import $ from 'jquery';
//获取table内容并转成二维数组（支持colspan和rowspan）
function getTabArray(jq) {
    let data = [];

    if (jq.find("tr").length == 0) {
        return data;
    }
    //填充数组
    jq.find("tr").each(function () {
        let arr = [];
        $(this).children('th,td').each(function () {
            arr.push($(this).text().trim());
            if ($(this).attr('colspan')) {
                for (let i = 0, len = parseInt($(this).attr('colspan')) - 1; i < len; i++) {
                    arr.push('');
                }
            }
        });
        data.push(arr);
    });
    //二次填充
    let yIndex = 0;
    jq.find("tr").each(function () {
        let xIndex = 0;
        $(this).children('th,td').each(function () {
            let t_yIndex = 0;
            if ($(this).attr('rowspan')) {
                t_yIndex = parseInt($(this).attr('rowspan'));
            }
            for (let i = 1, len = t_yIndex; i < len; i++) {
                let arr = data[yIndex + i];
                arr.splice(xIndex, 0, '');
            }
            if ($(this).attr('colspan')) {
                xIndex += parseInt($(this).attr('colspan'));
            } else {
                xIndex++;
            }
        });
        yIndex++;
    });

    return data;
}
function dataURLtoFile(dataurl, filename) { // 生成Blob
    var arr = dataurl.split(',');
    console.log(arr);
    var mime = arr[1].match(/:(.*?);/)[1];
    var bstr = window.atob(arr[2]);
    var n = bstr.length;
    var u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], { type: mime });
}
function createDownloadFileUrl(fileName, file) {
    const blob = dataURLtoFile(`data:application/zip;base64,${file}`, fileName); // application/zip 需要改成要下载文件的类型
    console.log(blob);
    blob.lastModifiedDate = new Date();
    blob.name = fileName;
    return URL.createObjectURL(blob);
}
export default function dataParse(data) {
    var mydata = []
    function parseData(data) {
        let newData = [].slice.call(data) //将传来的伪数组转化为真数组
        newData.forEach((item) => {
            if (item.children && item.children.length !== 0 && item.nodeName !== "TABLE") { //如果有子节点且长度不为0，回调
                return parseData(item.children)
            } else {
                if (item.nodeName == "P") { //p标签直接将其文本内容加入
                    mydata.push(item.innerText)
                } else if (item.nodeName == "TABLE") { //表格标签创建一个二维数组添加内容
                    mydata.push((getTabArray($(item.innerHTML))))
                } else if (item.nodeName == "#text") {
                    mydata.push(item.data)
                } else if (item.nodeName == "IMG") {//图片标签
                    // let fileUrl = createDownloadFileUrl("myimg", item.src)
                    // let url = fileUrl.split("blob:")[1]

                    // fileUrl = {
                    //     url
                    // }
                    // mydata.push(fileUrl)
                   
                }

            }
        })
    }
    parseData(data)
    return mydata
}
